1. Field of the Invention
The present invention relates to a computing apparatus, computing program and computing means. Specifically, it relates to computing by an execution section for executing computation, which is specified by a pointer.
2. Description of the Related Art
Conventionally, an undefined function, undefined procedure, or undefined variable can not exist in cases in a program executed in computer. For example, it is necessary to define all the functions, procedures, and variables to which the program refers in order to acquire an executable object by compiling a program expressed by a high-class programming language.
Here, “it is necessary to define all the functions, procedures, and variables to which the program refers” corresponds to the functions and procedure, to which the executable object refers, that exist in the code (instruction) segment, and values stored by variables, to which the executable object refers, that exist in data. The “code (instruction)” and “data” will be described hereinafter.
FIG. 23 is a view showing a frame format of the address space 2300 used at the point of executing a program by the computer. In cases where the upper segment of the address space 2300 corresponds to small addresses and the lower segment of the address thereof corresponds to large addresses, code (instruction) and data are stored in the small address area. Heap area is subsequent to that area. Stack area extends from the large address area.
The code (instruction) includes instructions for the computer to execute functions and procedures. The functions and procedures, to which the instruction included in the code refers, shall be placed in the address space. Moreover, data stores a value of a global variable defined by programming language. The heap is a memory area dynamically set aside in accordance with an execution of a program. When the memory is dynamically set aside by the function “malloc” etc, the one end of the heap extends to the greater address as indicated by arrow 2301. The stack is a memory area for storing return addresses to be stored at the point of calling functions and procedures and for storing local variables. When functions and procedures are called, the stack extends to the smaller address as indicated by arrow 2302.
However, in recent years, techniques using a shared library have become available, so that it has become unnecessary for functions, procedures and variables defined in the shared library to be defined at the point of compiling in order to acquire an executable object (refer to the official bulletin on Japan Patent Laid Open No. H06-332675). Therefore, the shared library, including definitions of undefined function, undefined procedure, and undefined variable, is to exist only when the executable object is executed. Therefore, undefined function included in the executable object is dynamically linked to the shared library at the start of execution, so that address thereof is resolved.
By using the shared library, for example, it becomes unnecessary to recompile in order to reflect a bug fix of function(s) in the library, and it becomes possible to downsize an executable object.
Note that functions provided by the shared library, instructions for executing process, and values of variables provided by the shared library are placed in the memory space between the heap and the stack. Specifically, the memory space is shared with the other processes in general.
However, even if the shared library is used, it is impossible to replace definitions of functions and procedures with the other definitions thereof during execution of the executable object. Therefore, for example, in cases where bugs are found, it is required to stop executing the executable object, to replace the executable object with a new executable object or the shared library with a new shared library, and to restart the program.
Therefore, since service by computer is indispensable at the present time, it is a problem that service provided by the executable object or the shared library may have to be suspended while replacing them.
This suspension of service causes a problem, for example, in the case of a web server that offers 24-hour service.
Moreover, this suspension of service causes a problem specifically in the router used for communications, such as the internet.
FIG. 22 shows a state wherein site-A and site-B are communicable by the router 2203, 2204, 2205, and 2206. In this case, it is necessary for each router 2203, 2204, 2205, and 2206 to have the route information from each of them to site-A so as to transmit data from site-B to site-A as indicated by a solid line. Thereby the router information flows as indicated by a dotted line. Similarly, it is necessary for the route information to flow as indicated by a dashed line so as to transmit data from site-A to site-B. Therefore, the router exchanges the route information with the co-adjacent router.
Thus, in cases where the router is halted in order to replace the executable object, sometimes called “firmware”, operated in the router used for communication, the communication via the router is temporarily disrupted. As described hereinabove, the route information is exchanged between the routers and by this exchange, the router computes the information regarding the shortest path etc. and stores the result thereof. However, in cases where the router is halted, the stored information is deleted. Therefore, it is required to compute and store the information again after restart, so that recovery to the pre-halt condition is time-consuming.
According to the algorithm currently used, computation of the shortest path by router requires computational complexity of the following formula wherein N indicates number of routers and L indicates number of communication paths.N×(N+L)  Formula 1
Specifically, since the order becomes proportional to the square of N, a lot of computational complexity is required for recovery at the present time wherein routers are widely used; therefore, a lot of time is required.
Moreover, the problem in version upgrades of firmware of this router becomes serious, specifically for the internet service provider. It is not uncommon that one internet service provider (ISP) possesses thousands of routers. For example, in cases where one internet service provider possesses 5,000 routers and version upgrades of firmware of routers are executed 3 times per year, the version upgrades of firmware are required to be executed 15,000 times per year. Therefore, on the average, about 50 routers per day are halted and version upgrades thereof are executed, thus amplifying the problem.